package com.hyg.lib_music.presenter.di.modules;

import android.app.Application;
import android.content.Context;

import com.hyg.lib_music.presenter.MainMusicBedContract;
import com.hyg.lib_music.presenter.MainMusicBedPresenter;
import com.hyg.lib_music.presenter.MusicCateListContract;
import com.hyg.lib_music.presenter.MusicCateListPresenter;
import com.hyg.lib_music.presenter.MusicCategoryListContract;
import com.hyg.lib_music.presenter.MusicCategoryListPresenter;
import com.hyg.lib_music.presenter.MusicDocListContract;
import com.hyg.lib_music.presenter.MusicDocListPresenter;
import com.hyg.lib_music.presenter.MusicFavListContract;
import com.hyg.lib_music.presenter.MusicFavListPresenter;
import com.hyg.lib_music.presenter.MusicListContract;
import com.hyg.lib_music.presenter.MusicListPresenter;
import com.hyg.lib_music.presenter.MusicRecommendContract;
import com.hyg.lib_music.presenter.MusicRecommendPresenter;

import javax.inject.Singleton;

import dagger.Module;
import dagger.Provides;


/**
 * Created by zz on 2018/12/10.
 */

@Module
public class ApplicationModule {

    private Application application;

    public ApplicationModule(Application application) {
        this.application = application;
    }

    @Provides
    @Singleton
    public Application provideApplication() {
        return application;
    }

    @Provides
    public Context provideContext() {
        return application.getApplicationContext();
    }

    @Provides
    @Singleton
    MainMusicBedContract.Presenter mainMusicBedPresenter(MainMusicBedPresenter presenter) {
        return presenter;
    }

    @Provides
    @Singleton
    MusicRecommendContract.Presenter musicRecommendPresenter(MusicRecommendPresenter presenter) {
        return presenter;
    }

    @Provides
    @Singleton
    MusicListContract.Presenter musicListPresenter(MusicListPresenter presenter) {
        return presenter;
    }

    @Provides
    @Singleton
    MusicCategoryListContract.Presenter musicCategoryListPresenter(MusicCategoryListPresenter presenter) {
        return presenter;
    }

    @Provides
    @Singleton
    MusicCateListContract.Presenter musicCateListPresenter(MusicCateListPresenter presenter) {
        return presenter;
    }

    @Provides
    @Singleton
    MusicFavListContract.Presenter musicFavListPresenter(MusicFavListPresenter presenter) {
        return presenter;
    }

    @Provides
    @Singleton
    MusicDocListContract.Presenter musicDocListPresenter(MusicDocListPresenter presenter) {
        return presenter;
    }
}
